/* { dg-skip-if "" { *-*-darwin* } } */
/* { dg-require-effective-target powerpc_p8vector_ok } */
/* { dg-options "-mdejagnu-cpu=power8 -O3" } */

class A {
public:
  int m_fn1();
};
class B {
public:
  enum IOMode { reading };
};
class tn_file_buf_stream : B {
public:
  tn_file_buf_stream(IOMode);
  ~tn_file_buf_stream();
};
class C {
public:
  int &operator[](int);
};
class D {
public:
  bool m_fn2();
};
class F {
public:
  int m_fn3(D &);
};
class G {
public:
  D bdt;
};
class ObjectType {
public:
  int id;
  D weather;
  struct H {
    F terrainaccess;
  };
  H m_fn4();
  struct {
    A images;
  } weatherPicture[];
  ObjectType *m_fn5();
  int m_fn6();
} a;
#pragma pack(1)
class I {};
class J {
  J(I *);
  I translationTableTMISSPart;
  void m_fn8();
  tn_file_buf_stream *MissFile;
  void m_fn9();
  virtual G *m_fn7(int, int);
};
int b, c, d, g;
int e[5];
short f;
void J::m_fn9() {
  int h;
  C k;
  for (; b;) {
    int l = c, n = c & 1;
    for (int m; d;) {
      int o = 0;
      for (int p = 0; p < 2 && !o; p++)
        if (g)
          for (int i; i < a.m_fn6(); i++) {
            ObjectType *q = a.m_fn5();
            for (int r = 0; r < 6; r++)
              if (q->weather.m_fn2())
                for (int j; j < q->weatherPicture[r].images.m_fn1(); j++)
                  if (e[m]) {
                    G *s = m_fn7(l, n);
                    if (q->m_fn4().terrainaccess.m_fn3(s->bdt))
                      g = o = 1;
                  }
          }
      k[h++] = f;
    }
  }
}

void J::m_fn8() try {
  tn_file_buf_stream t(B::reading);
  MissFile = &t;
  m_fn9();
  J u(0);
  u.m_fn8();
}

catch (int) {
}
